The execution strategy for a database query is called a query plan and may be represented as a graph. A query execution engine executes the plan by implementing the steps represented in the graph and delivering a set of results for the query.
A logical query plan describes an algorithm used to execute a particular query. In general the query execution plan for a query is more complicated than the join graph that describes how indexes or database tables in the query are connected. In addition to the connections in the join graph, the execution plan will usually contain additional nodes for projection and filter operations, and the same index may appear multiple times in the execution plan.
In a query plan graph, the nodes represent plan operations and part of the task of the execution engine is to orchestrate the execution of the plan operations on the available hardware. The plan operations may be individual search or join or aggregation or merge operations. The hardware may consist of a distributed landscape of hosts communicating by means of a protocol such as TCP/IP.
Increasingly, queries are being made to an information store that is distributed across a network of server computers and their associated databases. In a distributed network, communication among many servers to execute the plan operations of the join graph can become very complex and subject to too much latency. What is needed is a process for executing a query plan efficiently in a distributed network.